﻿/*==============================================================================
Copyright (c) Microsoft Corporation. All rights reserved.

This source code is intended only for use with Microsoft
Development Tools and/or on-line documentation.  See these other
materials for detailed information regarding Microsoft code samples.

THIS CODE AND INFORMATION ARE PROVIDED "AS IS."  YOU BEAR THE RISK OF USING IT.  
MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTIES OR CONDITIONS.  
TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES 
THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NON-INFRINGEMENT.
=============================================================================================*/
/**********************************************************************************************
Module:  B2BCall.cs
Description: B2BCall is a public abstract base class that derives from Call and surfaces APIs that
are commonly used in a Back To Back environment. Any media specific calls that should be used in 
a back to back environment shall derive from this class
**********************************************************************************************/


using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;
using Microsoft.Rtc.Collaboration;
using Microsoft.Rtc.Collaboration.AudioVideo;
using Microsoft.Rtc.Collaboration.ComponentModel;
using Microsoft.Rtc.Collaboration.ConferenceManagement;
using Microsoft.Rtc.Collaboration.ContactsGroups;
using Microsoft.Rtc.Collaboration.Presence;
using Microsoft.Rtc.Internal.Collaboration;
using Microsoft.Rtc.Internal.Collaboration.Conferencing;
using Microsoft.Rtc.Internal.Collaboration.Conferencing.Commands;
using Microsoft.Rtc.Internal.Collaboration.Utilities;
using Microsoft.Rtc.Signaling;
using System.Net.Mime;
using System.Diagnostics;

namespace BackToBack
{
    /// <summary>
    /// Base class for media-specific calls that are part of a BackToBack.
    /// </summary>
    public abstract class B2BCall : Call
    {
        #region constructors
        /// <summary>
        /// Constructor of a BackToBack call.
        /// </summary>
        /// <param name="conversation"></param>
        public B2BCall(Conversation conversation)
            : base(conversation)
        {
            base.IsReplacesSupported = false;
            base.IsEarlyMediaSupported = false;
        }
        #endregion

        #region Public Methods
        /// <summary>
        /// Makes SendProvisionalResponse public
        /// </summary>
        public new void SendProvisionalResponse(
            int responseCode,
            CallProvisionalResponseOptions options)
        {
            base.SendProvisionalResponse(responseCode, options);
        }
        #endregion
    }
}

